#ifndef _CILINDRO_H_
#define _CILINDRO_H_

#include <GL/glut.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include <stdio.h>
#include "VertexStruct.h"
#include "IndexStruct.h"
#include "Dibujable.h"

class Cilindro: public Dibujable
	{
	private:
		/*
		*	cantidadLados: cantidad de lados que se discretizan en el modelado.
		*/
		unsigned int cantidadLados;
	public:
		/*
		*	Cilindro(unsigned int cantLados)
		*	Constructor de Cilindro, donde se le pasa la cantidad de lados que se discretizan.
		*	Si cantLados es menor a 3 no se puede dibujar la tapa de un cilindro,
		*	entonces se elige por default que sean 8 los puntos para discretizar.
		*/
		Cilindro(unsigned int cantLados);
		
		/*
		*	~Cilindro()
		*	Destructor de Cilindro.
		*/
		~Cilindro();


		/*
		*	getCantidadLados()
		*	getter del atributo cantidadLados.
		*/
		unsigned int getCantidadLados() const;

		/*
		*	setCantidadLados(unsigned int cantLados)
		*	setter del atributo cantidadLados.
		*/
		void setCantidadLados(unsigned int cantLados);

		/*
		*	dibujarCilindro(int tiempoDurEscena)
		*	funcion que se encarga de dibujar un cilindro
		*	de tamanio unidad utilizando la cantidad de lados
		*	seteado en el contructor.
		*/
		void dibujar(int tiempoDurEscena);
	};

#endif
